Game server

ABSTRACT

A game distribution server configured to separately distribute game data comprising active game data and passive game data to a plurality of remote computers each provided with a client application, comprising: storage for active game data and passive game data configured to be distributed separately and recombined at a remote computer by a client application, wherein passive game data comprise files having a larger average file size than the average file size of active game data; an active data controller configured to control supply of active game data to said remote computer responsive to events occurring during game play; a passive data controller operable to control supply of passive game data separately from said active game data; and a communications interface.

FIELD

The invention relates to the field of gaming. More specifically, an embodiment of this invention relates to a gaming server for enabling a user to play games, and methods and apparatus for electronically deploying games.

BACKGROUND

Digital distribution is the principle of providing digital content over the Internet, and other networks, in the form of products or services. With broadband internet becoming evermore ubiquitous, the digital distribution of all types of media content is becoming increasingly desirable. Content delivery networks consisting of systems of servers and desktop computers have been deployed to deliver digital content to end users operating for example desktop PCs or consoles across the Internet.

One existing platform of this type for example is Valve Corporation's “Steam” product, which is a digital distribution, multiplayer and communications suite. It is primarily used to digitally distribute and manage various kinds of computer games, ranging from first-person shooters and RPGs (role playing games) to racing games.

Systems such as this allow users to purchase and acquire games access through a digital distribution network. In this regard, instead of receiving a box with a CD/DVD, purchased software is distributed by a server to the user, for example, via a pre-registered user account through which the software can be accessed and downloaded to a local client application running on the user's computer.

Known digital distribution platforms have operated with a distributed file system. The distributed file system allows a game to launch before it has been completely downloaded locally on to the player's computer. Most typically, this has been done by creating lists of essential game files and having a pre-loader request them from the distribution server only when they are needed or are about to be needed. According to these systems, it has been possible for a linear game to begin playing with only the executable code and a buffer of the first few areas downloaded. Such systems have been problematic up to now for various reasons. One major problem is that the game play will generally hang whilst data downloads in the background because modern games are many hundreds or even thousands of megabytes in size. Another problem is that downloads are vastly slowed down on slower connections or when the service providers get busy and are less able to cope with providing high bandwidth downloads. This problem is increased further for non-linear games, where the possibilities for game play are vast and the data required is always changing. For these reasons, this kind of content delivery has not been used extensively to date, since it has been impractical and frustrating for the end user.

The present invention aims to provide an improved content delivery system for computer games. More specifically, the present invention provides a server which allows a user to receive game data to their computer quickly and securely over a network such as the internet.

SUMMARY

According to one embodiment of the invention, there is provided a game distribution server configured to separately distribute game data comprising active game data and passive game data to a plurality of remote computers each provided with a client application. The game distribution server comprising: storage for active game data and passive game data configured to be distributed separately and recombined at a remote computer by a client application, wherein passive game data comprise files having a larger average file size than the average file size of active game data; an active data controller configured to control supply oil active game data to said remote computer responsive to events occurring during game play; a passive data controller operable to control supply of passive game data separately from said active game data; and a communications interface.

According to another embodiment of the invention, each passive game data flies is associated with a unique reference.

According to another embodiment of the invention, the active data controller is configured to receive game event indicators indicating events occurring during game play and to determine active game data likely to be required by the client application for use in said game.

According to another embodiment of the invention, the game distribution server further comprises: a passive data checking module configured to receive game event indicators indicating events occurring during game play and to determine passive game data likely to be required by the client application for use in said game.

According to another embodiment of the invention, the passive data checking module is configured to determine whether the passive game data likely to be required already exists on said remote computer; and to supply passive game data determined not to exist on said remote computer.

According to another embodiment of the invention, the passive data checking module is configured to transmit a first list of references associated with the passive game data likely to be required to the said remote computer, and to receive a second list of references associated with the passive game data likely to be required that does not exist on said remote computer.

According to another embodiment of the invention, the game distribution server further comprises: a buffer controller operable to set an amount of active game data and an amount of passive game data required to be buffered at said remote computer.

According to another embodiment of the invention, the amount of passive data transferred for buffering exceeds the amount of active data transferred for buffering.

According to another embodiment of the invention, the game distribution server further comprises: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.

According to another embodiment of the invention, the amount of active game data and the amount of passive game data required to be buffered at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the game distribution server further comprises: an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.

According to another embodiment of the invention, the essential minimum data comprises only passive data.

According to another embodiment of the invention, the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the storage for active game data and passive game data comprise an active game data storage device and a separate passive game data storage device.

According to one embodiment of the invention, there is provided a game distribution server configured to distribute games to a plurality of remote computers each provided with a client application. The game distribution server comprising: an administration module operable to determine, in respect of a remote computer, connection bandwidth and response time parameters; and a further module operable to determine what essential minimum data is required in order to begin game play.

According to another embodiment of the invention, the essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.

According to one embodiment of the invention, there is provided a game distribution server configured to separately distribute game data comprising active data objects and passive data to a plurality of remote computers each provided with a client application, comprising: a store for active data objects connected to an active data objects controller configured to control supply of active data objects to said remote computer responsive to events occurring during game play at said remote computer; a store for passive data connected to a passive data controller operable to control the supply of passive data separately from said active data objects; and at least one communications interface for connecting to remote computers.

According to another embodiment of the invention, each passive data file is associated with a unique reference.

According to another embodiment of the invention, the active data objects controller is configured to receive game event indicators indicating events occurring during game play and to determine active data objects likely to be required by the client application for use in said game.

According to another embodiment of the invention, the game distribution server further comprises: a passive data checking module configured to receive game event indicators indicating events occurring during game play and to determine passive data likely to be required by the client application for use in said game.

According to another embodiment of the invention, the passive data checking module is configured to determine whether the passive data likely to be required already exists on said remote computer; and to supply passive data determined not to exist on said remote computer.

According to another embodiment of the invention, the passive data checking module is configured to transmit a first list of references associated with the passive data likely to be required to the said remote computer, and to receive a second list of references associated with the passive data likely to be required that does not exist on said remote computer.

According to another embodiment of the invention, the game distribution server further comprises: a buffer controller operable to set an amount of active game data and an amount of passive game data required to be buffered at said remote computer.

According to another embodiment of the invention, the amount of passive data transferred for buffering exceeds the amount of active data transferred for buffering.

According to another embodiment of the invention, the game distribution server further comprises: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.

According to another embodiment of the invention, the amount of active game data and the amount of passive game data required to be buffered at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the game distribution server further comprises: an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.

According to another embodiment of the invention, the essential minimum data comprises only passive data.

According to another embodiment of the invention, the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the active data objects comprise data having a file size below a predetermined size threshold.

According to another embodiment of the invention, the stores for active and passive data comprise separate storage devices.

According to one embodiment of the invention, there is provided a game distribution server configured to distribute game data comprising active data objects to a plurality of remote computers each provided with a client application, wherein active data objects comprise data objects supplied responsive to events occurring during the game and which are automatically deleted by the client application after use. The game distribution server comprising: a game content processing module configured to receive game event indicators during game play and to determine active data objects likely to be required by the client application for use in said game; at least one controller for supplying active data objects to said client application responsive to said determination.

According to another embodiment of the invention, the game distribution server further comprises: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.

According to another embodiment of the invention, the amount of active data objects required to be supplied at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the active data objects comprise data having a file size below a predetermined size threshold.

According to another embodiment of the invention, deleted after use comprises one or more of: deleted after an active data objects buffer capacity is exceeded; deleted after a predetermined period of time; deleted after implementation in game play.

According to one embodiment of the invention, there is provided a game distribution server configured to distribute game data comprising passive data to a plurality of remote computers each provided with a client application, wherein passive data comprises game data which after game play resides on a remote computer and is identifiable as available passive data by the client application. The game distribution server comprising: a processing module configured to identify during game play passive data likely to be required by said client application in future; a content checking module operable to determine whether the passive data likely to be required already exists on said remote computer; and a data controller operable to transmit passive data determined not to exist on said remote computer.

According to another embodiment of the invention, the game distribution server further comprises: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters; and an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.

According to another embodiment of the invention, the essential minimum data comprises only passive data.

According to another embodiment of the invention, the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.

According to another embodiment of the invention, the amount of passive data required to be transmitted to said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.

According to one embodiment of the invention, there is provided a game distribution server configured to separately distribute game data comprising active data objects and passive data objects to a remote computer provided with a client application, comprising: at least one controller operable to set an amount of active data objects and an amount of passive data objects required to be buffered at said remote computer in dependence on one or more of bandwidth and response times, wherein said amount of passive data objects transferred for buffering exceeds the amount of active data objects.

According to another embodiment of the invention, the active data objects comprise data objects supplied responsive to events occurring during the game and which are automatically deleted by the client application after use.

According to another embodiment of the invention, deleted after use comprises one or more of: deleted after an active data objects buffer capacity is exceeded; deleted after a predetermined period of time; deleted after implementation in game play.

According to another embodiment of the invention, the active data objects comprise objects having a file size below a predetermined size threshold.

According to one embodiment of the invention, there is provided a method of operating a computer to distribute game data comprising active data and passive data to a plurality of remote computers each provided with a client application, wherein passive data comprises game data which after game play resides on a remote computer and is identifiable as available passive data by the client application. The method comprising: identifying during game play passive data likely to be required by said client application in future; determining whether the passive data likely to be required already exists on said remote computer; and transmitting passive data determined not to exist on said remote computer to said remote computer.

According to another embodiment of the invention, the step of determining whether the passive data likely to be required already exists on said remote computer further comprises: transmitting a first list of references of the passive data likely to be required by said client application in future to said remote computer; receiving from said remote computer a second list of references of the passive data likely to be required by said client application in future which is not stored at the remote computer; and retrieving the passive data associated with said second list of references.

According to one embodiment of the invention, there is provided a computer readable medium recorded with computer readable code arranged to cause a computer to perform the method described above.

According to one embodiment of the invention, there is provided a computer program product comprising programme code means for performing the method described above.

According to one embodiment of the invention, there is provided computer programme code means for performing the method described above.

DESCRIPTION OF THE DRAWINGS

For a better understanding of the invention and to show how the same may be carried into effect, reference will now be made by way of example to the accompanying drawings:

FIG. 1 illustrates a gaming system;

FIG. 2 illustrates a game server for use in the gaming system of FIG. 1;

FIG. 3 illustrates a process flow diagram;

FIG. 4 illustrates schematically the potential position of a user in a game within a predetermined period; and

FIG. 5 illustrates another process flow diagram.

DETAILED DESCRIPTION

Embodiments of the invention will now be described, by way of example only, with reference to the accompanying drawings.

FIG. 1 illustrates the main components of a gaming system 1. The gaming system 1 comprises game conversion module 10, game server 20 and user devices 30. The user devices 30 are connected to the game server 20 over a network such as the internet 40.

The game conversion module 10 converts a game of known format into a format suitable for use in the gaming system 1. The game conversion module 10 then transfers the converted game (in one embodiment a copy of the converted game) to the game server 20.

The game conversion module 10 may not have a permanent connection to the game server 20. Therefore, following conversion of a game, the game conversion module 10 establishes a connection with the game server 20, transfers the converted game to the game server 20 and then terminates the connection. This is illustrated by the dotted line in FIG. 1. Alternatively, the game conversion module 10 may have a permanent connection to the game server 20. In either example the connection may be a wired or wireless connection. In another embodiment, the game conversion module 10 may not have a connection to the game server 20. In this instance, following conversion of a game, the game is provided to the game server 20 via a storage medium such as a CD, DVD or memory stick etc. In another embodiment, the game server 20 may request a game or update from the game conversion module 10.

Further details of the game conversion module 10 can be found in co-pending patent application entitled: “Apparatus and Methods for Game Conversion” filed by the same applicant as this application, although this is not required to understand and implement the present invention.

In brief, in order to convert a game of known format into a format suitable for use with the gaming system 1, the game conversion module 10 converts the game into active data elements and passive data elements, such that the whole game can be transferred to the game server 20 as a combination of active data or passive data.

Typical examples of passive data are the elements of textures, mp3 files, wave files, text files and such like. However, broadly speaking, passive data is any data which can be downloaded to and stored locally on a user's device 30, and can potentially be replaced by a reference identifier. The game engine (for example: Unreal engine, Torque engine, Quake engine, Half Life engine) can also be classed as passive data because it is possible to use a version of the game engine stored locally on a user's device 30.

Active data is supplied to the user's device 30 running the game from the game server 20 in substantially real time or close to it. Active data is usually data which is required in order to give the passive data behaviour during game play. Potentially, any type of data can be classified as active data. However, according to one example, it is the game object data (for example parameter data) which is classified as active data. To this effect, in order for there to be a composition of all the basic data components in the game to create the sophisticated, interactive virtual object (or game token) as seen by the player during game play, the passive data (e.g. the textures, the game engine, etc.) is combined with the active data (parameters describing its behaviour). Without the active data, therefore, the game cannot be played because the passive data will not compile/render/behave properly on the user's device 30 due to the fact that there is no data describing how the game elements are combined and how they interact with each other in the game environment. The active data is downloaded, from the game server 20, separately from the passive data to the user's device 30, and combined with the download passive data stored at the user's device 30 in order to create the playable game at the user's device 30. According to one example, the active data and passive data may be combined on-the-fly upon separate arrival at the user's device 30.

Certain types of game object data are relatively small when compared with other data elements such as textures, audio files and the game engine, which can all have very large file sizes. It is therefore advantageous to have the object data as active data for two reasons. Firstly, having the object data as active data operates as a form of digital rights management in that the game cannot be played by a user without the necessary active data to compose the game play. Therefore active data is only stored momentarily on a user's device 30 and must be downloaded from the server 20 separate from the passive data. Secondly, the object data (generally active data) being so small means that games can be distributed using only a limited amount of network bandwidth, with all (or at least a large majority) of the large data (generally passive data) files being stored locally on the user's device 30.

According to one example, a site threshold is used to define data suitable for categorisation as active data. For example, any data file smaller than 256 kB is selected as potentially active data. Then a predetermined percentage of that selection, e.g. 40%, is classified as active data (the other 60% being classified as passive data).

As stated above, the passive data can be replaced by a reference. In conventional games an element of data, for example the texture grass may appear numerous times throughout the game. In order to convert a conventional game into a format of the gaming system 1, the game conversion module 10, identifies all the instances where an element of passive data appears more than once (either identical or similar), by checking the data content of each file, associates an unique reference with one of the elements of data files and replaces all further instances of the element of data file with the unique associated reference (and deleting all the further instances of the element of data file). For example the determination may be made pixel by pixel in the case of a texture, however, any suitable technique well known in the art may be used to assess similarity of the file contents as required. This greatly reduces the size of the game (for example a game of known format may be 1.2 GB but following conversion is reduced to 190 MB).

For example, the texture grass may appear 100 times in a game, in numerous levels, each texture grass file looking the same in a game but having different file names. The game conversion module 10 identifies each instance when the texture grass appears, associates an unique reference with one instance of the texture grass, and replaces the remaining 99 instances with the associated unique reference. Therefore, the game conversion module 10 reduces the size of the game by deleting repeated (and thus redundant) data. This results in a converted game which is of the same quality as a non-converted game, since all necessary source code of the game is not changed, but is of a reduced size. Consequently, the look, feel and game play is not altered by the game conversion module 10.

The game conversion module 10 also determines a game essential minimum. The essential minimum identifies the minimum amount of data required in order for a user to begin playing the game, for example, the minimum amount of data to enable the game to start up, or to start up and load the first level, or a portion of the first level or an otherwise fully playable portion of the game. The essential minimum is comprised entirely of passive data. Therefore, any data which may have been classified active data, due to its content or size is classified passive data if it is part of the essential minimum. Following download of the essential minimum to a user's device 30, the user can begin playing the game (for a limited period of time). In another embodiment, the user may need a supply of active data in real time or substantially real time in order to play the game at all. In either case, in order to continue/start playing the game, further active and passive data will be required and, accordingly, the user's device 30 requires a connection to the game server 20.

Each converted game which is output from the game conversion module 10 may be identifiable by a ContainerID. The ContainerID comprises a GameID with an additional suffix describing game packets. The GameID is a unique code to identify the game throughout the entire gaming system 1. According to one embodiment, the unique code is an alpha-numeric code, e.g. two letters and five digits in length, optionally with a regional suffix (e.g. “DE” for Germany, “UK” for United Kingdom etc.) indicating the language version of the game. Note that each language version of the game will generally undergo a separate conversion process, although in some circumstances, this may not be necessary. The additional suffix describing game packets may be a four digit code. For instance, the GameID “TR000001DE” plus the ContainerID suffix “0109” may represent the first packet (01) of the German language version of Tomb Raider 1, which has a total of 9 packets (09). In this context, the first packet “01” is the essential minimum as described above.

These Containers may contain both active and passive data for a game. Alternatively, there may be corresponding containers and packets for each of the active and passive data. In any case, the passive data and associated references of the converted game and the active data of the converted game are stored and/or labelled separately so they can be deployed to the client separately.

In one embodiment the passive data is divided into categories for storage. For example, all textures are stored in one table, all mp3 files are stored in another table, all wave files are stored in another table etc. Therefore, the passive data is stored in one storage device but the storage device is divided into separate tables based on the category of passive data.

A passive data storage device and an active data storage device at the game conversion module 10 stores all the converted games which have been converted by the game conversion module 10.

The same element of passive data may appear in numerous games. For example, the texture grass may appear in five different games. Therefore, in order to avoid the duplication of passive data within the game conversion passive data storage device, the game conversion module 10 also identifies all the instances where an element of passive data within the game being converted appears (either identical or similar) in the passive data storage device (i.e. the passive data appears in another game already converted by the game conversion module 10). Therefore, if an element of passive data which appears in a game being converted is already in the passive data storage device, then the unique reference associated with the element of passive data in the passive data storage device is used to replace all instance of that element of passive data within the game.

Taking the example above of the texture grass appearing in numerous different games, when a new game is to be converted, the game conversion module 10 identifies all instance of the texture grass within the new game, compares the texture grass with the data stored in the game conversion passive data storage device, determines that the texture grass is already stored in the game conversion passive data storage device, identifies the unique reference which is associated with the texture grass in the game conversion passive data storage device, and replaces all instances of the texture grass within the new game with the unique reference.

Each passive and active data element may comprise metadata provided by the game conversion module 10. The metadata may comprise:

-   -   FileID—a unique code to identify the file throughout the entire         gaming system 1. According to one embodiment, the unique code is         an alpha-numeric code, e.g. two letters and ten digits in         length.     -   FileName—a record containing the given name of the file         including its extension e.g. “tree1.jpg”, “bang2.wav” etc.     -   FileTypeID—a record indicating the file extension, e.g. “bmp”,         “jpg”, “mp3”, “wav” and such like. According to one embodiment,         proprietary file extensions are standardised during the         conversion process. For instance, a standard “*.jpg” file may be         renamed as “*.abc” by a given game developer for a number of         reasons. This process may be reversed so that all standard files         have the correct, accepted file extension format. According to         one embodiment, file extensions are standardised according to a         labelling system representing each individual file types. For         instance, the following numbering system may be employed: 00100         representing the general category of “graphics files” with         00101=jpeg files, 00102=bmp files, 00103=png files etc; and         00400 representing “sound files” with 00401=wav files, 00402=ogg         files, 00403=mp3 files etc.     -   FileLink—is a marker indicating the position of the file within         the file structure of the installed game. In other words, it is         a route indicator.     -   GameID—a unique code to identify the game throughout the entire         gaming system 1. According to one embodiment, the unique code is         an alpha-numeric code, e.g. two letters and five digits in         length, optionally with a regional suffix (e.g. “DE” for         Germany, “UK” for United Kingdom etc.) indicating the language         version of the game. Note that each language version of the game         will generally undergo a separate conversion process, although         in some circumstances, this may not be necessary.     -   FileSize—the size of the file, for example in kilobytes     -   ReferenceStatusID—made up of three sub-metadata flags: “No” (0),         “Yes” (1) and “Not Tested Yet” (2), each indicating whether or         not the file is replaceable by a file already present in the         game conversion database.     -   ReplacementFileID—if the ReferenceStatusID=1, then the         ReplacementFileIDs comprises a list of all other IDs which the         file is a reference file to. In other words, it comprises a list         of all equivalent files that can be replaced by the present         file.     -   ClassID—is made up of two sub-metadata flags: an indicator of         whether the file is classified as active (0) or passive (1).     -   SubClassID—is a locking flag which prevents an active file being         replaced by another file. Accordingly, a file may be marked         “locked” (0) or “replaceable” (1). This feature enables the         prevention, for example, of a certain file being replaced based         on performance considerations, and prevents collision between         ClassIDs.

The game conversion passive data storage device comprise all the passive data required for all the games which have been converted by the game conversion module 10 and the game conversion active data storage device comprise all the active data required for all the games which have been converted by the game conversion module 10. The passive data storage device is essentially a shared library of passive data.

As illustrated in FIG. 1, the game server 20 is connected to the user devices 30 over a network, such as the internet 40. The connection may be a wired or wireless connection. The user devices 30 may be, for example (but not limited to), desktop computers, laptop computers, game consoles, portable game consoles etc.

Further details of the game server 20 will now be given with reference to FIG. 2. The game server 20 comprises an active data storage device 100 and a passive data storage device 110. These storage devices 100, 110 are populated with converted games, converted by the game conversion module 10, and are updated whenever a converted game is transferred to the game server 20. The storage devices 100, 110 can store the active data and passive data for a plurality of converted games converted by the game conversion module 10.

Essentially, the game server active data storage device 100 contains a copy of the active data stored in the game conversion active data storage device and the game server passive data storage device 110 contains a copy of the passive data stored in the game conversion passive data storage device for all the games which have been converted by the game conversion module 10 and transferred to the game server 20.

When a new game has been converted by the game conversion module 10 and is to be transferred to the game server 20, the game conversion module 10 identifies the passive data elements of the new game which have been replaced by a unique reference to passive data already stored in the passive data storage device (a copy of which is stored in the passive data storage device 110 at the server 20). Indicators (for example, the FileID's) of the identified passive data elements are then transferred to the server 20 and the metadata of the identified passive data elements in the storage device 110 at the server 20, is updated. For example, the ReplacementFileID of an identified passive data element may be amended to include the GameID of the new game for which the identified passive data element is a reference file. In addition all new data which is not already stored at the game server 20, i.e. all the new game active data and any new game passive data which is not already stored in the storage device 110 is transferred (in the case of passive data, together with its associated unique reference) to the server 20 and stored in the appropriate storage device 100, 110.

In one embodiment, as with the game conversion module 10, the passive data storage device 110 of the game server 20 stores the passive data based on categories, such that, for example, all textures are stored in one table, all mp3 files are stored in another table, all wave files are stored in another table etc. Therefore, the passive data storage device 110 of the game server 20 is one storage device 110 storing all the passive data but is divided into separate tables based on the category of passive data. In another embodiment, a plurality of passive data storage devices 110 could be used.

The game conversion module 10 also transfers all the active data of the new game to the active data storage device 100 of the game server 20. The active data is unique to each game. Therefore, it is not necessary to perform a comparison of the active data already stored in the active data storage device 100 and the new active data.

It is possible to remove specific game data from the storage devices 100, 110 if required, for example, when a game is no longer popular. Moreover, updates of the active and/or passive data stored at the storage devices 100, 110 of the game server 20 can be performed if required. For example, if an updated version of the texture grass becomes available it can be saved over the current version of the texture grass stored in the passive data storage device 110 and associated with the unique reference which indicates the texture grass.

The quality of the updated files may be better (for example in terms of resolution etc.) than the original files, yet the overall game may still be smaller due to the amount of redundant data deleted from the game. In this regard, the visual and audio quality of a computer game may be improved, enhancing the user's experience whilst still reducing the overall size of the game.

A user can access the game server 20 over the internet 40 from a user device 30, via the web interface 140. Upon first use the user may optionally be required to set-up a user account with the gaming server 20, for example, the user may be required to enter data such as, their name, address, date of birth, financial account details etc. A user account is then created for each user by the administration and user set-up module 170, such that the user can then access the game server 20 and play any of the converted games which are stored in the active and passive data storage devices 100, 110. The user account data is stored in the user database 160.

Upon first use of the gaming server 20, the administration and user set-up module 170 determines whether the user's device 30 comprises the game processing application (game user software) required in order to play games converted by the game conversion module 10. If it is determined that the user's device 30 does not comprises the game user software, then the user is prompted to download a copy of the game user software from the storage device 180 at the server 20, via the web interface 140.

Although not required to understand and implement the present invention, further details of the game user software can be found in co-pending patent application entitled: “Game User Software” filed by the same applicant as this application.

In addition upon first use of the gaming server 20, the administration and user set-up module 170 identifies the hardware environment of the user's device 30, such as the graphics card the user's device 30 comprises and the processing speed of the CPU (central processing unit) of the user's device 30.

The game server 20 requires a two-way interactive communication with the user's device 30 at all times during game play. This is because during game play, not only is it necessary for the game server 20 to download data (active and passive data) to the user's device 30, but it is also necessary for the user's device 30 to send data to the game server 20, such as information about decisions made by the game player (user) during game play, and thus which data is required next in the game.

Consequently, the administration and user set-up module 170 also determines the ping time and bandwidth of the user's connection upon first (and subsequent) use of the gaming server 20. The ping time and bandwidth of the user's connection affects the speed with which the user's device 30 gets a response from the game server 20 when the user's device 30 sends a request for data to the game server 20.

In one embodiment, the hardware environment of the user's device 30 and/or the ping time and bandwidth of the user's device 30 is checked at predetermined intervals, for example each time the user connects to the game server 20, or each time the user selects a new game for playing. In addition, the hardware environment of the user's device 30 and/or the ping time and bandwidth of the user's device 30 may be checked throughout game play.

In order to avoid pauses during game play whilst data is being downloaded from the game server 20, the administration and user set-up module 170 may alter the buffer zone (explained in further detail below) for each user as a result of their hardware environment, ping time and bandwidth. Users with poor ping time and bandwidth are assigned a larger buffer zone than users who have good ping time and bandwidth.

As well as storing the user account data, the user database 160 can also be used to monitor and store user behaviour during game play. This data can then be transferred to game manufactures such that the games can be modified if required. For example, if 50% of users are not going through a particular door, because a secret code is needed, the game maker can establish that the code is too hard and thus can adjust the code/game.

Following set-up of an user account (if required), the user becomes an authorised user. An authorised user may be required to enter a user name and password via the web interface 140 in order to gain access to the game server 20. The administration and user set-up module 170 then compares the entered user name and password with authorised user data held in the user database 160 in order to verify if the user is an authorised user. Once it is confirmed that the user is an authorised user, the user is allowed to access the game server 20 and play games.

The user database 160 may also store user account data. For example, a user may be required to pay in order to play a game at the game server 20. Therefore, the user account data may be data regarding whether the user has sufficient funds in order to play a game at the game server 20. If it is determined that the user does not have sufficient funds in their account, then access to game play via the game server 20 may be denied until sufficient funds have been added to the user's account. In addition, if it is determined that the user is an authorised user, but does not have sufficient funds in their account, then access to game play via the game server 20 may be denied until sufficient funds have been added to the user's account.

Following confirmation that the user has sufficient funds and/or is an authorised user, the user can select any one of the converted games stored in the storage devices 100, 110 to play. This selection can be made via the web interface 140.

In a further embodiment, the user may not be required to be an authorised user and/or may not be required to pay in order to play a game stored at the game server 20.

The optional CMS (content management system) module 150 is used to manage the content of the web-interface 140 as known in the art.

The user's game selection is transferred to the game content processing module 120 together with confirmation from the administration and user set-up module 170 that the user is an authorised user and/or has sufficient funds in their account if required. The game content processing module 120 comprises an active object communication module 122, a content checking and delivery module 124 and a passive data controller module 126.

The game content processing module 120 interfaces with the game user software at the user's device 30 via the game server communication interface 130.

The game user software at the user's device 30 uses an user passive data storage device (not illustrated). In one embodiment, the user passive data storage device is initially empty. In another embodiment, initial passive data may be transferred with the game user software from the administration and user set-up module 170 to the user device 30 in order to populate the user passive data storage device. In another or additional embodiment, passive data may be provided on a CD (compact disc)/DVD/memory stick etc. which the user purchases in order to populate the user passive data storage device.

In order to play the selected game the essential minimum data (discussed above) is downloaded from the passive data storage device 110 at the server 20 to the user passive data storage device. In addition the connection between the server 20 and the user's device 30 must be active, so that active data and further passive data can be downloaded to the user's device 30 as required during game play.

As stated above the game engine is considered a special type of passive data. Prior to, or after, download of the essential minimum data it is determined whether the user's device 30 has the required game engine, and if the user's device 30 does not have the required game engine, then it is (a copy is) downloaded to, and stored at, the user's device 30 together with, or separately from the essential minimum data. The game is then run on this locally stored game engine which combines the necessary active data received from the game server 20 and the necessary passive data downloaded to the user passive data storage device from the game server 20 and retrieved from the user passive data storage device by the game engine.

FIG. 3 illustrates schematically the process of the essential minimum data download from the passive data storage device 110 at the game server 20 to the user passive data storage device at the user's device 30.

When a user selects a game for playing (at step S200), the users selection is transferred via the web interface 140 to the game content processing module 120. The content checking and delivery module 124 determines what game engine is required to play the selected game and checks whether the user's device 30 has this game engine (step S202). If the user's device 30 does not have the required game engine, then the game engine is transferred to the user's device 30 (step S204). The passive (and active) data is transferred to the user's device 30 via the game server communication interface 130.

The game engine is a special type of passive data and as such it is stored in the user passive data storage device.

In addition to determining what game engine is required by the game, the content checking and delivery module 124 also determines what administrative features, such as physics engine, control application etc. are required by the game and transfers those which are required to the user's device 30, if not available at the users device 30. In one embodiment, all the administrative features of the game are downloaded to the users device 30 at the beginning of the game download.

The content checking and delivery module 124 also determines what essential minimum data is required in order to play the selected game (step 5206). The passive data which is stored in the passive data storage device 110 is associated with an unique reference, as discussed above, which is used to identify the passive data. Each passive data also contains an indication as to which game requires the passive data. The content checking and delivery module 124 transfers a first list of unique references indicating the essential minimum data which is required for the selected game to the user's device 30 (step S208).

The user device 30 comprises an user passive data manager. The user passive data manager compares the first list of unique references with the unique references associated with passive data stored in the user's passive data storage device (step S210) and determines which of the first listed passive data is not already stored in an user passive data storage device (step S212). The user passive data manager then returns a second list of unique references to the content checking and delivery module 124 (step S214) via the server communication interface 130. The second list indicates which of the first listed essential minimum data is not stored in the user passive data storage device at the user's device 30 and thus is required by the user passive data storage device.

In one embodiment, if the user device 30 does not have any data stored in the user passive data storage device, then the second list of references is identical to the first list of references. However, if some of the required essential minimum data is already stored in the user passive data storage device, then this passive data does not need to be transferred from the passive data storage device 110 of the game server 20 to the user passive data storage device of the user's device 30. Consequently, the second list of references is likely to be smaller than the first list of references.

In one embodiment, as discussed above, the game conversion module 10 identifies all the instances where an element of passive data within a game appears (either identical or similar) in another game already converted by the game conversion module 10 and associated the existing unique reference with the element of passive data. The game conversion module 10 amends the ReplacementFileID of the element of passive data element to include the GameID of each new game for which the identified passive data element is a reference file. Consequently, the passive data stored in the passive data storage device 110 at the game server (which was converted by the game conversion module 10) does not include any duplications of passive data.

As a result, the passive data which is transferred to the users device from the game server 20 details the GameID of each converted game for which the identified passive data element is a reference file.

The content checking and delivery module 124 uses the second list of references to determine what passive data and its associated reference is required to be transferred to the user's device 30. The content checking and delivery module 124 then retrieves the required essential minimum passive data and its associated reference from the passive data storage device 110 (step S216) and transfers a copy of the passive data and its associated reference to the user device 30 (step S218). Therefore, only new passive data (passive data not already stored in the user passive data storage device) is transferred to the user device 30.

The user passive data manager then stores the transferred passive data and associated reference in the user passive data storage device.

Steps S202 and S204 may be performed after steps S206 to S218, i.e. the game engine may be transferred after the essential minimum data. In addition, the game engine may be transferred at the same time as the essential minimum data at step S218.

In one embodiment, as with the game conversion module 10 and the game server 20, the passive data storage device of the user's device 30 stores the passive data based on categories, such as all textures are stored in one table, all mp3 files are stored in another table, all wave files are stored in another table etc. Therefore, the passive data storage device of the user device 30 is one storage device storing all the passive data but is divided into separate tables based on the category of passive data.

Since only new passive data (passive data not already stored in the user passive data storage device) is transferred to the user device 30, the more games that the user has selected for playing, the more passive data will be stored in the user passive data storage device. Thus, the amount of passive data required to be transferred from the game server 20 to the user device 30 should reduce with each game, such that the time required to download the essential minimum data to the user's device 30 may decrease with each game. In addition the time required to download the passive data to the user's device 30 during game play may decrease with each game.

The essential minimum data required for initial download may also be supplemented with further initial download data (if required) depending on the determined ping time and bandwidth of the connection to the user's device 30 (as discussed above). For example, if the user's connection is slow, the game content processing module 120 may determine that the user's device 30 requires the essential minimum data and further additional active and/or passive data to be downloaded to the user's device 30 before game play can commence. In this instance the extra passive data is transferred together with or separately from the essential minimum data using a similar process to that described in FIG. 3. The extra active data may also be transferred together with or separately from the essential minimum data. However, since the active data cannot be replaced by a reference and is not permanently stored at the user's device 30, no comparison (such as steps S210 to S218) is required.

The process of FIG. 3 is performed prior to commencement of game play. Not all of the selected game passive data may be transferred before commencement of game play. For example, only the passive data which is required for the first three levels of the selected game may be identified and transferred, using the process described above with reference to FIG. 3, to the user's device 30 before game play commences.

During game play the passive data is downloaded from the storage device 110 at the server 20 to the user passive data storage device at the user's device 30 (in the background), using a process similar to that of FIG. 3. The passive data is then read from the user passive data storage device when required. In contrast the active data is downloaded when required, and is not permanently stored at the user's device 30. The user passive data storage device functions as a virtual drive at the user's device 30 from which the passive data is read, in contrast to conventional games which are read from a disc.

It may not necessary for the process of FIG. 3 to be carried out when the user selects the game for playing the second and subsequent times, since the essential minimum data required to begin game play has been downloaded to the user passive data storage device at the user's device 30.

Following download of the essential minimum data (including the game engine if required) game play can begin. The entire game is not required to be downloaded before game play begins, only the essential minimum is required. The game data (active and passive data) is then downloaded in the background during game play, as required.

According to one embodiment, active data and passive data are distributed by separate servers. For example, passive data can be distributed by a web server, since its delivery speed does not directly affect game play; a slower delivery speed simply means the user has to wait longer to begin playing the game (and the buffer zone is increased, as discussed below). The delivery speed of active data, on the other hand, is more critical in the sense that the game cannot be played without it and most games will be prepared by the game conversion module 10 in a manner that requires a constant feed of active data in order for the game to be played. In this regard, therefore, it is more desirable to have a fast server for distributing the active data. According to one example, active data is distributed by a blade server and passive data is distributed by a web server.

To ensure that there are not any delays during game play whilst passive (and active) data is downloaded from the game server 20, it is necessary to determine a buffer zone which surrounds the players (user's game token) current position in the game. This buffer zone indicates all the passive (and active) data which may be required during the next predetermined period of game play.

As illustrated in FIG. 4, if the player is currently at the centre position (indicated by the solid black diamond ♦) at time t=0, then the player could be anywhere within the first circle 1 at t=1, anywhere within the second circle 5 at t=5 and anywhere within the third circle 10 at t=10. In most games the player is not required to move in one direction, such as direction A, B or C, and can turn around and double back on himself or can change direction, game play may not be linear and different users (or the same user) can play the same game in different ways, based on decisions taken during the game. Consequently, at any one time, the player could be about to move to any one of plurality of different environments each requiring different (or the same) active and passive data. For example, if the passive data buffer zone is defined by the dotted circle 10 in FIG. 4 and the active data buffer zone is defined by the dotted circle 1 in FIG. 4, then the game server 20, and in this example, the game content processing module 120, needs to monitor game play and determine all the passive data that may be required within the zones 0 to 10 and all the active data that may be required within the zones 0 to 1. The zones of the game may be defined for example in terms of time, distance, memory, rooms or levels within a game.

The active data buffer zone is smaller than the passive data buffer zone so as to avoid permanently storing (for any significant period of time/amount of data) active data at the user's device 30 and thus prevents the game being played when connection to the server 20 is broken.

The content checking and delivery module 124 can then download the required (buffer zone) passive data to the user passive data storage device at the user's device 30 and the required (buffer zone) active data to the user active data storage device at the user's device 30 in the background during game play.

Monitoring of game play and dynamic determination of buffer zone(s) can occur at either the game server 20 or at the user device 30. In the latter case, the user device 30 needs to request the buffer zone data (active and passive) required to be stored at the user device 30.

In one embodiment, the passive data buffer zone may be set as one level, in this case the game server 20 downloads each level of passive data one level before it is required.

FIG. 5 illustrates an exemplary server monitoring process of game play and for downloading data from the game server 20 to the user's device 30 during game play.

The game content processing module 120 receives an indication of the current game play (for example, which level the player is on and where in the level the player is) together with a request for active and passive data from the user's device 30 via the game server communication module 130 (step S300). The content checking and delivery module 124 than determines what passive data is required for the next predetermined period of game play (the buffer zone) at step S302.

The content checking and delivery module 124 then transfers a first list of unique references indicating the passive data which is required for the next predetermined period of game play to the user device 30 (step S304).

As stated above, the user device 30 comprises an user passive data manager. The user passive data manager compares the first list of unique references with the unique references associated with passive data stored in an user's passive data storage device (step S306) and determines which of the first listed passive data is not already stored in an user passive data storage device (step S308). The user passive data manager then returns a second list of unique references to the content checking and delivery module 124 (step S310) via the server communication interface 130. The second list indicates which of the first listed passive data is not stored in the user passive data storage device and thus is required to be downloaded to the user passive data storage device.

The content checking and delivery module 124 uses the second list of references to determine what passive data and its associated reference is required to be transferred to the user device 30 and the passive data controller 126 determines the order in which the passive data is to be downloaded to the user device 30 (step S312). The content checking and delivery module 124 then retrieves the second list of passive data and its associated reference from the passive data storage device 110 (step S314) and transfers a copy of the passive data and its associated reference to the user device 30 (step S316).

The user passive data manager then stores the transferred passive data and associated reference in the user passive data storage device at the user's device 30.

The active data is only downloaded to the user's device 30 during game play and the active data is not permanently stored at the user's device 30.

The active data is downloaded to the user's device 30 with a buffer zone. However, the buffer zone for the passive data is set to be larger than the buffer zone for the active data. This is because, in most instances, more passive data is required for one zone and passive data tends to have larger file sizes than the active data, thus the passive data requires longer download times. In addition, the active data is only stored temporarily, for a very short period of time, on the users device 30. The active data is constantly being overwritten at the user's device 30 when it is no longer required. Therefore, a live connection between the user's device 30 and the game server 20 is required during all game play. It is not possible for the user to play a downloaded game if they are not connected to the game server 20 since the user's device 30 does not store any of the active data required for game play only the passive data is stored at the users device 30. In addition, it is not possible for a user to create a copy of the game (for resell for example) since the user's device 30 does not store any of the active data required for game play. Additionally the game cannot be used through a peer-to-peer sharing network, as again the user's device 30 does not store any of the active data required for game play.

The active object communication module 122 retrieves the active data required for game play from the active data storage device 100 and transfers it to the user's device 30 via the game server communication interface 130 during game play. The active data is not transferred prior to game play and is not stored at the user's device 30.

It is also possible for the game user apparatus at the user's device 30 to be launched through a conventional internet browser. For example by clicking a game listed on a website hosted by the game server 20, via the web interface 140, an extension of the browser automatically launches the game user apparatus on the user's device 30 and begins to initiate the essential minimum download or game play (i.e. active and passive data stream) if the game has been played before.

The gaming system 1 prevents users from copying games. In addition, the gaming system 1 enables multiplayer game play to be easier as long at all the players are connected to the game server 20.

The invention has been described with particular illustrative embodiments. It is to be understood that the invention is not limited to the above-described embodiments and that various changes and modifications may be made by those of ordinary skill in the art without departing from the scope of the invention. 

1. A game distribution server configured to separately distribute game data comprising active game data and passive game data to a plurality of remote computers each provided with a client application, comprising: storage for active game data and passive game data configured to be distributed separately and recombined at a remote computer by a client application, wherein passive game data comprise files having a larger average file size than the average file size of active game data; an active data controller configured to control supply of active game data to said remote computer responsive to events occurring during game play; a passive data controller operable to control supply of passive game data separately from said active-game data; and a communications interface.
 2. The game distribution server according to claim 1, wherein each passive game data files is associated with a unique reference.
 3. The game distribution server according to claim 1 or 2, wherein the active data controller is configured to receive game event indicators indicating events occurring during game play and to determine active game data likely to be required by the client application for use in said game.
 4. The game distribution server according to any one of claims 1 to 3, further comprising: a passive data checking module configured to receive game event indicators indicating events occurring during game play and to determine passive game data likely to be required by the client application for use in said game.
 5. The game distribution server according to claim 4, wherein the passive data checking module is configured to determine whether the passive game data likely to be required already exists on said remote computer; and to supply passive game data determined not to exist on said remote computer.
 6. The game distribution server according to claim 4 or 5, wherein the passive data checking module is configured to transmit a first list of references associated with the passive game data likely to be required to the said remote computer, and to receive a second list of references associated with the passive game data likely to be required that does not exist on said remote computer.
 7. The game distribution server according to any one of claims 1 to 6, further comprising: a buffer controller operable to set an amount of active game data and an amount of passive game data required to be buffered at said remote computer.
 8. The game distribution server according to claim 7, wherein said amount of passive data transferred for buffering exceeds the amount of active data transferred for buffering.
 9. The game distribution server according to any one of claims 1 to 10, further comprising: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.
 10. The game distribution server according to claim 9 when dependent on claims 7 or 8, wherein the amount of active game data and the amount of passive game data required to be buffered at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.
 11. The game distribution server according to any one of claims 1 to 10, further comprising: an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.
 12. The game distribution server according to claim 11, wherein the essential minimum data comprises only passive data.
 13. The game distribution server according to claim 11 or 12 when dependent on claims 9 or 10, wherein the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.
 14. The game distribution server according to any one of claims 1 to 13, wherein the storage for active game data and passive game data comprise an active game data storage device and a separate passive game data storage device.
 15. A game distribution server configured to distribute games to a plurality of remote computers each provided with a client application, comprising: an administration module operable to determine, in respect of a remote computer, connection bandwidth and response time parameters; and a further module operable to determine what essential minimum data is required in order to begin game play.
 16. The game distribution server according to claim 15, wherein the essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.
 17. A game distribution server configured to separately distribute game data comprising active data objects and passive data to a plurality of remote computers each provided with a client application, comprising: a store for active data objects connected to an active data objects controller configured to control supply of active data objects to said remote computer responsive to events occurring during game play at said remote computer; a store for passive data connected to a passive data controller operable to control the supply of passive data separately from said active data objects; and at least one communications interface for connecting to remote computers.
 18. The game distribution server according to claim 17, wherein each passive data file is associated with a unique reference.
 19. The game distribution server according to claim 17 or 18, wherein the active data objects controller is configured to receive game event indicators indicating events occurring during game play and to determine active data objects likely to be required by the client application for use in said game.
 20. The game distribution server according to any one of claims 17 to 19, further comprising: a passive data checking module configured to receive game event indicators indicating events occurring during game play and to determine passive data likely to be required by the client application for use in said game.
 21. The game distribution server according to claim 20, wherein the passive data checking module is configured to determine whether the passive data likely to be required already exists on said remote computer; and to supply passive data determined not to exist on said remote computer.
 22. The game distribution server according to claim 20 or 21, wherein the passive data checking module is configured to transmit a first list of references associated with the passive data likely to be required to the said remote computer, and to receive a second list of references associated with the passive data likely to be required that does not exist on said remote computer.
 23. The game distribution server according to any one of claims 17 to 22, further comprising: a buffer controller operable to set an amount of active game data and an amount of passive game data required to be buffered at said remote computer.
 24. The game distribution server according to claim 23, wherein said amount of passive data transferred for buffering exceeds the amount of active data transferred for buffering.
 25. The game distribution server according to any one of claims 17 to 24, further comprising: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.
 26. The game distribution server according to claim 25 when dependent on claims 24 or 23, wherein the amount of active game data and the amount of passive game data required to be buffered at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.
 27. The game distribution server according to any one of claims 17 to 26, further comprising: an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.
 28. The game distribution server according to claim 27, wherein the essential minimum data comprises only passive data.
 29. The game distribution server according to claim 27 or 28 when dependent on claim 25, wherein the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.
 30. The game distribution server according to any one of claims 17 to 29, wherein the active data objects comprise data having a file size below a predetermined size threshold.
 31. The game distribution server according to any one of claims 17 to 30, wherein the stores for active and passive data comprise separate storage devices.
 32. A game distribution server configured to distribute game data comprising active data objects to a plurality of remote computers each provided with a client application, wherein active data objects comprise data objects supplied responsive to events occurring during the game and which are automatically deleted by the client application after use, comprising: a game content processing module configured to receive game event indicators during game play and to determine active data objects likely to be required by the client application for use in said game; at least one controller for supplying active data objects to said client application responsive to said determination.
 33. The game distribution server according to claim 32, further comprising: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters.
 34. The game distribution server according to claim 33, wherein the amount of active data objects required to be supplied at said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.
 35. The game distribution server according to any one of claims 32 to 34, wherein the active data objects comprise data having a file size below a predetermined size threshold.
 36. The game distribution server according to any one of claims 32 to 35, wherein deleted after use comprises one or more of: deleted after an active data objects buffer capacity is exceeded; deleted after a predetermined period of time; deleted after implementation in game play.
 37. A game distribution server configured to distribute game data comprising passive data to a plurality of remote computers each provided with a client application, wherein passive data comprises game data which after game play resides on a remote computer and is identifiable as available passive data by the client application, comprising: a processing module configured to identify during game play passive data likely to be required by said client application in future; a content checking module operable to determine whether the passive data likely to be required already exists on said remote computer; and a data controller operable to transmit passive data determined not to exist on said remote computer.
 38. The game distribution server according to claim 37, further comprising: an administration module operable to determine, in respect of said remote computer, connection bandwidth and response time parameters; and an essential minimum module operable to determine what essential minimum data is required in order to begin game play at said remote computer.
 39. The game distribution server according to claim 38, wherein the essential minimum data comprises only passive data.
 40. The game distribution server according to claim 38, wherein the amount of essential minimum data required at said remote computer is determined in dependence on one or more of: the connection bandwidth and the response time parameters.
 41. The game distribution server according to claim 38 or 39, wherein the amount of passive data required to be transmitted to said remote computer is determined in dependence on one or more of the connection bandwidth and the response time parameters.
 42. A game distribution server configured to separately distribute game data comprising active data objects and passive data objects to a remote computer provided with a client application, comprising: at least one controller operable to set an amount of active data objects and an amount of passive data objects required to be buffered at said remote computer in dependence on one or more of bandwidth and response times, wherein said amount of passive data objects transferred for buffering exceeds the amount of active data objects.
 43. The game distribution server according to claim 42, wherein the active data objects comprise data objects supplied responsive to events occurring during the game and which are automatically deleted by the client application after use.
 44. The game distribution server according to claim 43, wherein deleted after use comprises one or more of: deleted after an active data objects buffer capacity is exceeded; deleted after a predetermined period of time; deleted after implementation in game play.
 45. The game distribution server according to any one of claims 42 to 44, wherein the active data objects comprise objects having a file size below a predetermined size threshold.
 46. A method of operating a computer to distribute game data comprising active data and passive data to a plurality of remote computers each provided with a client application, wherein passive data comprises game data which after game play resides on a remote computer and is identifiable as available passive data by the client application, comprising: identifying during game play passive data likely to be required by said client application in future; determining whether the passive data likely to be required already exists on said remote computer; and transmitting passive data determined not to exist on said remote computer to said remote computer.
 47. The method according to claim 46, wherein the step of determining whether the passive data likely to be required already exists on said remote computer further comprises: transmitting a first list of references of the passive data likely to be required by said client application in future to said remote computer; receiving from said remote computer a second list of references of the passive data likely to be required by said client application in future which is not stored at the remote computer; and retrieving the passive data associated with said second list of references.
 48. A computer readable medium recorded with computer readable code arranged to cause a computer to perform the method of claims 46 or
 47. 49. A computer program product comprising programme code means for performing the method of claims 46 or
 47. 50. Computer programme code means for performing the method of claims 46 or
 47. 